package com.mcp.server.config;

import com.mcp.server.service.BaiduMapService;
import com.mcp.server.service.EmailService;
import org.springframework.ai.tool.ToolCallbackProvider;
import org.springframework.ai.tool.method.MethodToolCallbackProvider;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class McpConfiguration {
    /**
     * 服务端需要明确声明哪些功能可以被客户端调用
     * 暴露服务端 工具
     * MethodToolCallbackProvider 会扫描 EmailService 类中标注了 @Tool 注解的方法
     * 将这些方法包装成MCP协议标准的工具定义
     * 当客户端连接时，服务端通过MCP协议将这些工具信息发送给客户端
     */
    @Bean
    public ToolCallbackProvider mcpTools(
            EmailService emailService,
            BaiduMapService baiduMapService
    ){
        return MethodToolCallbackProvider.builder()
                .toolObjects(emailService,baiduMapService)
                .build();
    }
}
